module.exports = {
	encryptPassword: function(password) {
		return require("crypto").createHash('sha1').update(password).digest('base64');
	},
	genToken: function() {
		var libCore = require(basePath+'/lib/libCore.js');
		var microtime = require('microtime');
		var crypto = require('crypto');
		libCore.mt_rand(0, microtime.nowDouble() * 1000000);
	    // Array of characters, adjust as desired
		var chars = [
			'Q', '@', '8', 'y', '%', '^', '5', 'Z', '(', 'G', '_', 'O', '`',
			'S', '-', 'N', '<', 'D', '{', '}', '[', ']', 'h', ';', 'W', '.',
			'/', '|', ':', '1', 'E', 'L', '4', '&', '6', '7', '#', '9', 'a',
			'A', 'b', 'B', '~', 'C', 'd', '>', 'e', '2', 'f', 'P', 'g', ')',
			'?', 'H', 'i', 'X', 'U', 'J', 'k', 'r', 'l', '3', 't', 'M', 'n',
			'=', 'o', '+', 'p', 'F', 'q', '!', 'K', 'R', 's', 'c', 'm', 'T',
			'v', 'j', 'u', 'V', 'w', ',', 'x', 'I', '$', 'Y', 'z', '*'
		]
		// Array indice friendly number of chars; empty token string
		var numChars = chars.length - 1;
		var token = '';	    // Create random token at the specified length
		for (var i = 0; i < 32; i++) {
			token += chars[libCore.mt_rand(0, numChars)];
		}
		// Number of 32 char chunks
		var chunks = Math.ceil(token.length / 32);
		var md5token = '';
		// Run each chunk through md5
		for (var i = 1; i <= chunks; i++) {
			md5token += crypto.createHash('md5').update(token.substr(i * 32 - 32, 32)).digest("hex");
		}
		// Trim the token
		token = md5token.substr(0, 32);
		return token;
	}
};